The goal of image denoising is to reconstruct a “noise free” enhanced image from an image corrupted with noise. Many image processing methods exist for image denoising.
The first group of methods uses local methods where a noise free estimate of a target pixel is reconstructed as a weighted average of pixel values within a small spatial neighborhood of the target pixel. One such method convolves the noisy image with a smoothing filter such as a Gaussian kernel function where weights decrease with distance from the target pixel according to the function. Due to the linear filtering operation, which is insensitive to the local image structure (pixel values) within the neighborhood, the resulting image usually has blurry artifacts.
To overcome the blurring artifact, other local methods attempt to make the filters “edge-aware” by using non-linear filters. A median filter reconstructs a pixel value as a median value of the pixel values within the neighborhood.
Another method uses anisotropic diffusion, where a shape of the filter can be adapted to local image structure as a result of a diffusion process, which is sensitive to image discontinuities.
A sigma filter identifies pixels that are similar to the target pixel within its neighborhood by thresholding the absolute pixel value difference between the target pixel and other pixels within the neighborhood. The target pixel is then reconstructed by an average of only the similar pixel values (pixels with difference within the similarity threshold) within the neighborhood. The weights in that model can be considered as being 0 or 1 according to similarity criteria.
Several extensions to sigma filter are known. For example, one can use a bilateral filter where, instead of a hard thresholding operator (0 or 1 weights), the weights are continuously varied according to a multiplication of two kernel functions, one in spatial domain, and one in range (pixel value) domain.
Another method examines different local image areas around the pixel of interest, and determines a noise free estimate for each local area. The estimate for the pixel of interest is then determined as some weighted average of the local area estimates.
Another method determines a noise variance for each pixel value, which is stored in a lookup table. A similarity threshold and weights are then adjusted based on this noise model.
Local denoising methods benefit from spatial locality, which allows fast computation. However, those methods fail to use global statistics of an image, such as repeating patterns, which is an important cue for image denoising.
The second group of methods uses non-local denoising methods. The non-local method retrieves image patches similar to the target image patch by searching all patches within the image. Then, the target patch is replaced by a weighted average of the similar patches.
Alternative non-local methods include sparse reconstruction of image patches using a learned dictionary from the same image, and transform domain non-local filtering. The non-local search step of those methods makes them difficult to use in systems with computational and memory constraints.
Alternatively, non-local denoising can be achieved by performing inference on a Markov random field (MRF) using graph cuts or belief propagation. To achieve fast performance, the number of iterations is small, leaving considerable noise in the result.